发起签署接口FAQ
如何配置业务线?
业务线是发起签署的前提条件,配置步骤如下:
- 登录开放签账号,切换到对应企业身份
- 进入【企业管理后台】应用
- 在业务线管理页面新增或配置业务线:
- 签署方配置:选择"经办人发起时自行设置"(流程不固定)或"按照预设流程发起"(流程固定)
- 签约文件:上传本地文件或选择公共模板
- 位置设置:在文件上指定签署位置
- 模板参数:配置参数填写方
- 启用业务线(创建后需手动启用)
发起签署需要哪些必要参数?
参数 | 是否必填 | 说明 |
---|---|---|
appAuthToken | 是 | 应用授权凭证 |
uniqueCode | 是 | 唯一流水号(随机生成) |
operator | 是 | 发起方企业经办人信息 |
signReId | 是 | 业务线ID(需已启用) |
send | 是 | 必须设为"1"(仅支持直接发起) |
签署方列表如何配置?
根据签署类型配置不同结构:
- 企业签署方
- 个人签署方
{
"signerType": "SENDER",
"signerOrder": "1",
"internalNodeList": [
{
"nodeType": "ENTERPRISE_SEAL",
"signerOrder": "1",
"autoSign": "AUTO_SIGN",
"sealId": "印章ID"
},
{
"nodeType": "PERSONAL_SIGN",
"signerOrder": "2",
"signer": {
"contact": "手机号",
"contactType": "MOBILE",
"name": "姓名"
}
}
]
}
{
"signerType": "RECEIVER_PERSONAL",
"signerOrder": "2",
"receiver": {
"contact": "手机号",
"contactType": "MOBILE",
"name": "姓名"
}
}
签署位置如何设置?
使用positionParamList
配置签署位置:
{
"controlType": "SIGNATURE", // 控件类型
"signPositionType": "KEYWORD", // 定位方式
"keyword": "乙方签字", // 关键字
"keywordType": "1", // 关键字索引
"offsetX": "20", // X偏移量
"offsetY": "0", // Y偏移量
"relationDocList": [
{
"docType": "1",
"docId": "文件ID"
}
]
}
自动签署的条件是什么?
需同时满足:
- 节点类型为
ENTERPRISE_SEAL
(企业签章) - 签署方类型为
SENDER
(发起方) - 设置
autoSign: "AUTO_SIGN"
- 提供有效的
sealId
(印章ID)
模板参数如何填写?
当使用公共模板时需传递参数:
"signTemplateParamList": [
{
"paramKey": "company_name",
"paramValue": "ABC科技有限公司"
},
{
"paramKey": "contract_date",
"paramValue": "2023-06-15"
}
]
特殊类型参数格式:
- 日期:
"YYYY-MM-DD"
- 单选:选项UID(如
"747a8a"
) - 多选:多个UID逗号分隔(如
"747a8a,217a23"
) - 图片:Base64字符串(不加前缀)
业务线预设流程与接口传参的关系?
三种配置场景:
- 预设流程+完全匹配:接口传参与业务线配置完全一致
- 预设流程+发起方不变:可省略发起方信息
- 无预设流程:完全以接口传参为准
签署顺序如何控制?
通过以下参数控制签署顺序:
signOrderType
:全局顺序类型(ORDER
有序/NO_ORDER
无序)signerOrder
:签署方顺序(从1开始)internalNodeList.signerOrder
:企业内部节点顺序
签署位置设置有几种模式?分别适用什么场景?
使用 controlChangeFlag
字段控制签署位置设置模式,支持三种模式:
类型 | 模式 | 说明 | 适用场景 |
---|---|---|---|
NECESSARY_AND_ADD | 必须签署,可新增 | 发起人指定位置不可修改,但签署人可新增 | 多方协同签署,允许双方在合适位置签字,如B2B 合作协议签署 |
NECESSARY_NO_ADD | 必须签署,不可新增 | 发起人指定位置不可修改,也不允许新增 | 严格合规控制,确保只能在固定位置签字,如B2C 劳动合同签署 |
NOT_NECESSARY | 非必须签署 | 发起人指定位置可由签署人修改或删除 | 自由签署流程,灵活盖章或签字,如内部审批会签 |
指定的签署位置,不希望签署方变动和新增,怎么处理?
两种方式:
-
方式一: 在接口中
controlChangeFlag
传递NECESSARY_NO_ADD
使用 “必须签署,不可新增” 的签署位置设置模式。 -
方式二:在业务线中设置 “必须签署,不可新增” 的签署位置设置模式,接口中不传递该参数。
签约文件如何追加?
通过signDocumentList
添加文件:
"signDocumentList": [
{
"docId": "上传文件接口返回的ID"
}
]
注意:需先调用[上传签约文件接口]获取文件ID
关键参数详解
operator(经办人信息)
字段 | 类型 | 必填 | 说明 |
---|---|---|---|
contact | string | 是 | 手机号/邮箱 |
contactType | string | 是 | MOBILE (手机)/EMAIL (邮箱) |
name | string | 是 | 经办人姓名 |
签署控件类型(controlType)
类型 | 说明 |
---|---|
SIGNATURE | 个人签章 |
SEAL | 企业签章 |
SIGN_DATE | 签署日期 |
CHOP_STAMP | 骑缝签 |
关键字定位(keywordType)
值 | 说明 |
---|---|
1 | 第1个关键字 |
0 | 所有关键字 |
-1 | 倒数第1个关键字 |
页码配置(pageConfig)
值 | 说明 |
---|---|
ALL | 全部页 |
EVEN_NUMBER | 偶数页 |
ODD_NUMBER | 奇数页 |
1,3,5-8 | 指定页码 |
示例
完整请求示例
{
"appAuthToken": "APP_TOKEN_123456",
"uniqueCode": "UNIQUE_20230615123456",
"operator": {
"contact": "13800138000",
"contactType": "MOBILE",
"name": "张三"
},
"signReId": "BIZ_LINE_001",
"sn": "CONTRACT_20230615001",
"subject": "技术服务协议",
"expireDate": "2023-06-30",
"signDocumentList": [
{"docId": "DOC_001"}
],
"signOrderType": "ORDER",
"signerList": [
{
"signerType": "SENDER",
"signerOrder": "1",
"internalNodeList": [
{
"nodeType": "ENTERPRISE_SEAL",
"signerOrder": "1",
"autoSign": "AUTO_SIGN",
"sealId": "SEAL_001",
"positionParamList": [
{
"controlType": "SEAL",
"signPositionType": "KEYWORD",
"keyword": "甲方盖章",
"keywordType": "1"
}
]
}
]
},
{
"signerType": "RECEIVER_PERSONAL",
"signerOrder": "2",
"receiver": {
"contact": "13900139000",
"contactType": "MOBILE",
"name": "李四"
},
"positionParamList": [
{
"controlType": "SIGNATURE",
"signPositionType": "KEYWORD",
"keyword": "乙方签字",
"keywordType": "1"
}
]
}
],
"send": "1"
}
成功响应
{
"code": 10000,
"message": "成功",
"result": {
"contractId": "CTR_20230615001"
},
"timestamp": 1686812400000
}